Network management in particular, as well as other forms of distributed management systems (e.g., storage management, server management, cloud centers, data centers), requires a high degree of flexibility. This is due to the fact that distributed network management requires interaction with many types of users typically having different levels of access to system resources, devices having unique configurations and divergent command syntaxes, as well as processing a multitude of events or triggers that may occur within the system. Current system architectures use a static approach that may account for some of the unique events, but are generally incapable of dynamically responding to new or unforeseen events that were not explicitly accounted for in advance.
For example, networking architectures and network devices, such as routers and switches, as well as their configurations, are becoming increasingly complex both in structure and functionality. Such complexities require network engineers or other personnel to know hundreds or thousands of vendor-specific commands or syntaxes and to master both the hardware and software idiosyncrasies of each differently manufactured networked device in order to successfully configure and manage a network. But traditional network management techniques, which include network device configuration and maintenance processes, fail to amply provide network administrators (or any network user) with a means to control the creation, the deployment, or the modification of each device configuration in a scalable and consistent manner.
Rather, network operators often configure devices without regard to any of the business processes affected by implemented configurations, which can lead to a disruption of network services. Without any mechanism for tying business processes and network management processes together, a newly applied configuration to a device just becomes a mere setting on a device. Consequently, the entire functionality of the configured device is not performed with business considerations prior to or after this configuration, which in turn, isolates the network processes from an organization's business processes and hinders efficiency.
Additionally, internal and external distributed system networks are becoming more sophisticated. There is a need in current systems to process and account for a host of unique system events and/or requests which may, for example, require handling of unique access authorizations or contextual data in order to properly process. The combined increase in network users and in sophistication of networked applications creates further need to integrate network management and business processes by establishing business rules that govern the usage of shared network resources.
To normalize the structure and functionality of each network resource requires at least abstracting the resource's functionality. But abstracting resource functionality presents a problem for most networks because they are built using distinct devices, each of which have many different capabilities and command syntaxes. Further, different vendors use different programming models for their vendor-specific network devices. The use of different programming models often leads to an inoperable or suboptimal networking of resources. For example, the use of varied programming models tends to impair a network operator's ability to determine whether a certain traffic conditioning used to separate different classes of traffic is correct.
FIG. 1 is a diagram showing network resources as sources of network information, each of which is associated with a different programming model. For example, a network portion 100 includes a first router manufactured by vendor one having a set of vendor-specific command line interface (“CLI”) commands 102, a second router built by vendor two having another set of vendor-specific CLI commands 104, and one or more repositories of one or more Policy Information Bases (“PIBs”) and/or Management Information Bases (“MIBs”) 106. If FIG. 1 represents a portion of a conventional network, some routers support CLI 102 and 104 for provisioning while other routers employ Simple Network Management Protocol (“SNMP”) for monitoring, which includes information from MIBs and PIBs 106.
Without an underlying uniform data representation 110 that relates the CLI commands to SNMP commands, it is in general impossible to correlate the commands of one programming model to the commands of another programming model. Since many network vendors build separate applications for managing different sets of features present in the same vendor-specific device, a number of multiple applications are required to manage and to provision devices from not only different devices from different vendors, but also from the same vendor as well.
Moreover, present devices are difficult to extend to accommodate new technologies, device versions, vendor-specific information, and other factors. Prior U.S. Pat. No. 8,010,650, having common inventorship hereto, and which is herein incorporated by reference, describes in detail the process of providing a system and a method for managing networks including one or more different devices having different command syntaxes, different programming models, and/or different functionalities. Systems and methods as disclosed therein are capable of providing an information source that allows management of different devices within a network system, but are generally difficult to extend to management of devices, events, and triggers of diverse distributed systems. For example, the disclosed networking systems are capable of recognizing and configuring a set of new devices as they connect to the network but are not sufficient to process a wide variety of system events and triggers outside of this context. Thus, such systems and methods may be used to implement certain features, namely the provision of an information model, in accordance with disclosed embodiments, but further capabilities and extension are required to dynamically respond to and handle system events at runtime as disclosed herein.
Although present devices and techniques for managing networks are functional, they are not sufficiently accurate or otherwise satisfactory. Moreover, devices and techniques are incapable of adequately recognizing and handling system events in order to provide administration of network functions and configuration in a dynamic runtime environment. Accordingly, a system and method are needed to address the shortfalls of present technology and to provide other new and innovative features.